今天我們將第一次從電腦推訊息到google home,我們首先建立一個資料夾
在資料夾的路徑下,先進行
npm init
會得到package.json。
再進行安裝 google-home-push這個套件
sudo npm install --save google-home-push
但會遇到問題
這是因為樹莓派環境不像電腦,缺少很多npm基本環境,需裝:mkdirp、mdns、node-gyp
sudo npm install -g node-gyp
sudo npm install -g mkdirp
sudo npm install -g mdns
並提供root權限安裝google-home-push及libavahi
sudo npm install --save google-home-push --unsafe-perm=true --allow-root
sudo apt-get install libavahi-compat-libdnssd-dev
最後check package.json 的dependencies(之後要重新安裝就複製dependencies)
{
"name": "ithelp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@google-cloud/language": "^4.0.0",
"@google-cloud/vision": "^1.8.0",
"castv2-client": "^1.2.0",
"google-home-push": "^1.1.3",
"mdns": "^2.5.1",
"mkdirp": "^1.0.4",
"node-gyp": "^5.1.1"
}
}
接著建立config.js 與googleHomeService.js
[中間插播]
config.js:
用來放各裝置的ip,這邊我是用array放多個物件(各裝置的資訊),只要記得一定要有ip
googleHomeService.js:
用來執行我們將要運用的npm套件 google-home-push
接下來config.js填入裝置資訊
exports.moudule = [
{
name: "google home",//用來給自己辨認裝置,自行取名
place: "1",//用來給自己辨認裝置所在的房間,自行取名
ip : "192.168.72.200"//裝置IP位址
},
{
name: "net mini",
place: "2",
ip : "192.168.72.36"
},
]
googleHomeService.js
const googleHome = require('google-home-push');
const config = require('./config')
const language = "zh-TW"
const accent = "zh-TW"
const options = {
language: language,
accent: accent
}
const myHome = new googleHome(config.moudule[0].ip,options)
myHome.speak("你好");
language、accent依其字面上意義,為google-home-push提供語言及腔調的選擇,想玩的同學可以至下方網址選擇。
https://cloud.google.com/translate/docs/languages
其實也有語速可以進行變化,但就不多寫了。有興趣的同學請自己動手。
最後new googleHome()放入IP位址及選項
這樣即可簡單的在myHome.speak()中使用字串推播訊息!